Adaptive screen interfaces based on viewing distance

ABSTRACT

Voice commands and gesture recognition are two mechanisms by which an individual may interact with content such as that on a display. In an implementation, interactivity of a user with content on a device or display may be modified based on the distance between a user and the display. An attribute such as a user profile may be used to tailor the modification of the display to an individual user. In some configurations, the commands available to the user may also be modified based on the determined distance between the user and a device or display.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.13/765,877, filed Jan. 13, 2013, the contents of which are incorporatedby reference

BACKGROUND

Digital screens are present in many environments such as gamingenvironments, malls, restaurants, businesses, and homes. In addition,many touch or input device autonomous systems exist. In a gamingenvironment a console may have a depth camera connected to it thatcommunicates information about a user's body position to the console.The console may animate a character on a screen according to the user'sgestures. For example, if the user gestures to throw a punch in a boxinggame, a character on the screen may be displayed as throwing a punchwith the same hand using a predefined animation sequence.

BRIEF SUMMARY

According to an implementation of the disclosed subject matter, adistance between a user and a device such as a display may bedetermined. Based on the determined distance and an attribute, apresentation style of content on the display may be selected. Anattribute may include, for example: user height, content context, a userprofile, a user number, an environment, and a vantage point. At least aportion of commands may be determined to be available to the user basedon one or more of the determined distance, the attribute, and thepresentation style. A portion of the content on the display may bemodified based on the presentation style of content.

In an implementation, a scaling function for a display may be received.Content for the display may be received. A distance between the user andthe display may be determined. An output of the display may be modifiedbased on the determined distance and the scaling function.

In an implementation, a system is provided that includes a database anda processor. The database may store, for example, a user preference, anattribute, a presentation style, information about a display, or thelike. A processor may be connected to the display. The processor may beconfigured to receive a scaling function for a display. It may receivecontent for the display. In some configurations, the processor maydetermine a distance between a user and the display or it may receive anindication thereof. The processor may modify an output of the displaybased on the determined distance and the scaling function.

Additional features, advantages, and implementations of the disclosedsubject matter may be set forth or apparent from consideration of thefollowing detailed description, drawings, and claims. Moreover, it is tobe understood that both the foregoing summary and the following detaileddescription provide examples of implementations and are intended toprovide further explanation without limiting the scope of the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the disclosed subject matter, are incorporated in andconstitute a part of this specification. The drawings also illustrateimplementations of the disclosed subject matter and together with thedetailed description serve to explain the principles of implementationsof the disclosed subject matter. No attempt is made to show structuraldetails in more detail than may be necessary for a fundamentalunderstanding of the disclosed subject matter and various ways in whichit may be practiced.

FIG. 1 shows a computer according to an implementation of the disclosedsubject matter.

FIG. 2 shows a network configuration according to an implementation ofthe disclosed subject matter.

FIG. 3 shows an example process flow according to an implementation.

FIG. 4A shows an example of a display where the user is between thedisplay and a first threshold.

FIG. 4B shows an example of a display where the user is between thefirst threshold and a second threshold.

FIG. 4C shows an example of a display where the user is beyond thesecond threshold.

DETAILED DESCRIPTION

Content on a display or device may be modified based on a distancebetween an individual and the device. For example, the amount ofinformation or content shown on the screen may increase the closer theuser is to the screen. Similarly, the commands that are available orpresented to the user may be adapted based on the user's distance fromthe monitor.

In an implementation, a distance between a user and a display isdetermined. Based on the determined distance, a presentation style ofcontent on the display may be selected. A presentation style may referto how content is displayed on the display. A gesture input may bereceived and at least a portion of the content on the monitor may bemodified based on the received gesture input and the presentation styleof content.

In an implementation, a distance between a user and a monitor isdetermined. Based on the determined distance, available commands may bedetermined. A command may refer to the gesture commands available to theuser based on the distance the user is from the monitor. In someconfigurations, a gesture input may be received and at least a portionof the content on the monitor may be modified based on the receivedgesture input and the available commands capability. A command may referto the number of commands available to a user. The function of a commandmay be varied based on distance. For example, if the distance betweenthe user and the monitor is determined to be relatively small, then auser pointing at the screen may be associated with a “Print” command. Ifthe distance is large, then pointing at the screen may be associatedwith magnifying the portion of the display at which the gesture isdirected.

Both the content and the commands available may be modified based ondistance. A distance between a user and a monitor may be determined.Based on the determined distance, a presentation style and availablecommands may be selected. A gesture input may be received and at least aportion of the content on the monitor may be modified based on thereceived gesture input, the presentation style of content, and thecommand available.

Implementations of the presently disclosed subject matter may beimplemented in and used with a variety of component and networkarchitectures. FIG. 1 is an example computer 20 suitable forimplementations of the presently disclosed subject matter. The computer20 includes a bus 21 which interconnects major components of thecomputer 20, such as a central processor 24, a memory 27 (typically RAM,but which may also include ROM, flash RAM, or the like), an input/outputcontroller 28, a user display 22, such as a display screen via a displayadapter, a user input interface 26, which may include one or morecontrollers and associated user input devices such as a keyboard, mouse,and the like, and may be closely coupled to the I/O controller 28, fixedstorage 23, such as a hard drive, flash storage, Fibre Channel network,SAN device, SCSI device, and the like, and a removable media component25 operative to control and receive an optical disk, flash drive, andthe like.

The bus 21 allows data communication between the central processor 24and the memory 27, which may include read-only memory (ROM) or flashmemory (neither shown), and random access memory (RAM) (not shown), aspreviously noted. The RAM is generally the main memory into which theoperating system and application programs are loaded. The ROM or flashmemory can contain, among other code, the Basic Input-Output system(BIOS) which controls basic hardware operation such as the interactionwith peripheral components. Applications resident with the computer 20are generally stored on and accessed via a computer readable medium,such as a hard disk drive (e.g., fixed storage 23), an optical drive,floppy disk, or other storage medium 25.

The fixed storage 23 may be integral with the computer 20 or may beseparate and accessed through other interfaces. A network interface 29may provide a direct connection to a remote server via a telephone link,to the Internet via an internet service provider (ISP), or a directconnection to a remote server via a direct network link to the Internetvia a POP (point of presence) or other technique. The network interface29 may provide such connection using wireless techniques, includingdigital cellular telephone connection, Cellular Digital Packet Data(CDPD) connection, digital satellite data connection or the like. Forexample, the network interface 29 may allow the computer to communicatewith other computers via one or more local, wide-area, or othernetworks, as shown in FIG. 2.

Many other devices or components (not shown) may be connected in asimilar manner (e.g., document scanners, digital cameras and so on).Conversely, all of the components shown in FIG. 1 need not be present topractice the present disclosure. The components can be interconnected indifferent ways from that shown. The operation of a computer such as thatshown in FIG. 1 is readily known in the art and is not discussed indetail in this application. Code to implement the present disclosure canbe stored in computer-readable storage media such as one or more of thememory 27, fixed storage 23, removable media 25, or on a remote storagelocation.

FIG. 2 shows an example network arrangement according to animplementation of the disclosed subject matter. One or more clients 10,11, such as local computers, smart phones, tablet computing devices, andthe like may connect to other devices via one or more networks 7. Thenetwork may be a local network, wide-area network, the Internet, or anyother suitable communication network or networks, and may be implementedon any suitable platform including wired and/or wireless networks. Theclients may communicate with one or more servers 13 and/or databases 15.The devices may be directly accessible by the clients 10, 11, or one ormore other devices may provide intermediary access such as where aserver 13 provides access to resources stored in a database 15. Theclients 10, 11 also may access remote platforms 17 or services providedby remote platforms 17 such as cloud computing arrangements andservices. The remote platform 17 may include one or more servers 13and/or databases 15.

More generally, various implementations of the presently disclosedsubject matter may include or be implemented in the form ofcomputer-implemented processes and apparatuses for practicing thoseprocesses. Implementations also may be implemented in the form of acomputer program product having computer program code containinginstructions implemented in non-transitory and/or tangible media, suchas floppy diskettes, CD-ROMs, hard drives, USB (universal serial bus)drives, or any other machine readable storage medium, wherein, when thecomputer program code is loaded into and executed by a computer, thecomputer becomes an apparatus for practicing implementations of thedisclosed subject matter. Implementations also may be implemented in theform of computer program code, for example, whether stored in a storagemedium, loaded into and/or executed by a computer, or transmitted oversome transmission medium, such as over electrical wiring or cabling,through fiber optics, or via electromagnetic radiation, wherein when thecomputer program code is loaded into and executed by a computer, thecomputer becomes an apparatus for practicing implementations of thedisclosed subject matter. When implemented on a general-purposemicroprocessor, the computer program code segments configure themicroprocessor to create specific logic circuits. In someconfigurations, a set of computer-readable instructions stored on acomputer-readable storage medium may be implemented by a general-purposeprocessor, which may transform the general-purpose processor or a devicecontaining the general-purpose processor into a special-purpose deviceconfigured to implement or carry out the instructions. Implementationsmay be implemented using hardware that may include a processor, such asa general purpose microprocessor and/or an Application SpecificIntegrated Circuit (ASIC) that implements all or part of the techniquesaccording to implementations of the disclosed subject matter in hardwareand/or firmware. The processor may be coupled to memory, such as RAM,ROM, flash memory, a hard disk or any other device capable of storingelectronic information. The memory may store instructions adapted to beexecuted by the processor to perform the techniques according toimplementations of the disclosed subject matter.

In an implementation, a distance may be determined between a user and adevice at 310. The device may be, for example, a display, a tablet, acomputing device, a monitor, a television, a projection screen, or astereo/speaker system. A distance may be determined using a cameracollocated with the device. A depth camera may be used to capture asequence of images from an environment. The collected images may beprocessed to determine if a user or object is present. In someconfigurations, a user may be detected by facial recognition. A sequenceof images captured by a camera may be used to identify a particulargesture. For example, features identified in the sequence of images maybe compared to a database of known gestures. The database may containinformation about particular features or signatures of a gesture and thecaptured images may be analyzed for those features. A confidence scoremay be generated for a sequence of images that indicates whether thesequence contains a given gesture. For example, a gesture may be a setof features and a sequence of images may be a percentage of thosefeatures. If the confidence score meets a threshold, then the imagesequence may be determined to contain the gesture. Other methods ofpattern matching or image analysis may be used to determine whether auser is present in a captured image and/or whether a gesture has beenreceived.

A horizontal distance between an object (e.g., a user) and the displaymay be determined based on one or more captured images from a camera.This distance may not be identical or similar to the actual distancebetween the object and the display or camera for implementationsdisclosed herein. The camera used to capture an image or sequence ofimages in an environment may be calibrated for distance measurements,for example, from the factory or as a component of a set-up procedureperformed by a user. In some configurations, a single camera collocatedwith a display may be used to determine the distance between the cameraand a detected user. In some configurations, a camera may not becollocated with the display but the display may be detected oridentified as a component of a set-up procedure. For example, multiplecameras may be distributed in an environment. Each camera may provideinformation about the environment or camera itself (e.g., focal length,lens size, etc.) to a processing unit, a database, a server, or thelike. The information provided by the cameras may be utilized to detectusers, gestures, or objects such as a display. A reference object with aknown size may be utilized to aid in distance determinations between thedisplay and other objects in the field of view of the one or morecameras. A skilled artisan will recognize that other methods ofdetermining a distance between a display and an object may be usedaccording to any implementation disclosed herein. The determineddistance 310 may refer to the actual distance or an approximationthereof or a relative distance such as the distance determined from animage of an environment.

Returning to FIG. 3, based on the determined distance and an attribute,a presentation style of content on the display may be selected at 320. Apresentation style may refer to a level of detail of content displayedand will be further discussed below. Examples of an attribute mayinclude: user height, content context, a user profile, a user number, anenvironment, and a vantage point. For example, a user may enterinformation including a picture of the user, the user's height into auser profile. The user profile may also allow the user to configure thepresentation style that the user would prefer to see at variousdistances from the display. One user may prefer a high level of detailincluding a touch interface at forty centimeters while another user mayprefer to have minimal content displayed regardless of distance.Attributes, including a user profile, may be stored on a database. Anattribute may also include a user number. If multiple users aredetected, the system may determine a median or average distance of atleast one user from the display. A content context may refer, forexample, to what is being displayed such as a web page, a video game, agame mode, a video, text, music, an image, etc. Similarly an environmentmay refer to the location of the display. A location may be, forexample, a public display, a living room, a ball room, a conventioncenter, etc. A vantage point may refer to a user's position relative tothe display. For example, a user that is significantly off axis from thecenter of the display may receive a different presentation style than ifthe user was on the center axis at the same distance away. In someconfigurations, a user may be designated as having primary control. Thesystem may be configured to ignore other objects/users for the purposesof modifying the display. A primary user may be configured in a userprofile or it may refer to the first individual the system detects atstart-up or as the first person in a room or environment.

In addition to display content being altered based on distance, commandsavailable to the user may be determined based on the determineddistance. Command availability may also refer to a different functionbeing assigned to the same command based on distance. A command mayrefer to a gesture, a voice command, or an input received by a keyboard,mouse, or input device. In some configurations the amount of contentdisplayed may be reduced as the user moves further away from thedisplay. If the content displayed is video, at large distances thedisplay may show only the video and play/pause button. The commandsavailable to the user may include stop/pause and exit. At closerdistances, a user may be allowed to access additional controls. Forexample, the video may also have more controls such as fastforward/rewind in addition to play/pause and exit. In someconfigurations, the function of a command may be changed. For example,when a user is determined to be close to a screen, the fast forward mayproceed at 10× playback speed whereas when the user is far from thescreen, the fast forward may proceed at 5× playback speed.

In some configurations, a determined distance may be mapped to a range.A range may be, for example, 0-1 meters away from the screen. A rangemay also be defined by a threshold. For example, any distance under adefined threshold may be associated with a particular presentationstyle. The distances that make up a range may be predefined, such asbased on an attribute as described earlier, or configured by anend-user. The number of ranges for a given system may also bepredefined, such as based on an attribute, and/or configured by anend-user. In some configurations, the determined distance between a userand the display may be mapped to a table containing a range of distancesand the corresponding presentation style. The table may be predefined,such as based on an attribute, and/or configured by the end-user. Insome configurations, the predetermined distance may be mapped to a curveor graphical plot based on at least the presentation style and distance.In some instances, it may be desirable to have the presentation stylelinearly correlate with the determined distance while in other instancesit may be desirable to have a non-linear relationship between thedetermined distance and presentation style.

At least a portion of the content on the display may be modified basedon the presentation style of content at 330. Likewise, the commandsavailable to the user may be modified based on distance. For example, itmay be determined that the distance between the user and the displayexceeds a threshold distance. The amount of content on the display maybe increased or reduced. The number of commands may be increased orreduced in response to the determined distance. The available commandsmay not be modified commensurate with a presentation style. For example,a presentation style may have a different threshold value than thatrequired to increase/decrease or otherwise modify the availablecommands.

FIGS. 4A-C show an example of how content may be altered based on userdistance from a display. In FIG. 4A, a display 420 is shown collocatedwith a depth camera 410. The depth camera 410 captures images from thedisplay location and may process the images for command data (e.g., agesture) or transmits the image sequences to a processor for suchanalysis. The display 420 shows a webpage with a first window 430showing a stock car race, a second window 440 showing user comments, anda third window 450 showing videos related to the one shown in the firstwindow 430. Based on the data obtained from the camera 410, a user maybe determined to be within range represented by a first threshold marker470 and the display 420. Based on the determined distance, the maximumamount of content may be displayed to the user 460. An attribute, suchas the display size, the source of the content being displayed, a userprofile, etc. may be utilized in addition to the determined distance tomodify the content displayed. Because 460 the user 460 is determined tobe proximal to the display 420 or between the display 420 and the firstthreshold 470, the user 460 may be provided with access to all commandstypical of a web browsing experience including a touch enabledinteraction if the display provides a touch-enabled interface. The user460 however, may not be able to interact with speech or gesturecommands.

In FIG. 4B, the user 460 is within a range bounded by the firstthreshold 470 and a second threshold marker 480. The first window 431now appears with a title bar omitted. The second window 441 showsrelated videos; but, it does not indicate a title for each video as inFIG. 4A. The third window 451 displays information about the video beingviewed in the first window 431. The user 460 may have access to spokencommands at this range and gesture based commands such as signalingspeech, grabbing/pulling a window, enlarging a window, swiping, orthrowing.

In FIG. 4C, the user 460 exceeds the second threshold 480. In thisrange, the display 420 may show only a single window 432 containing thevideo. The user may have access to only a subset of spoken or gesturecommands such as on/off, play/pause, volume, and search. If the user 460enters the range defined by the first threshold 470 and the secondthreshold 480, the display 420 may change to the one shown in FIG. 4B.The determination of presentation style and the available commands maybe a dynamic process, responsive to the user's distance, an attribute,or the number of users in the room. A user may be determined to be aspecified distance away from a monitor. The specified distance may bedetermined to fall within a range that causes the type of commandsavailable to the user to be limited or expanded and that causes theformat of the content displayed on the screen to be minimalistic. Forexample, commands may be limited to scrolling and/or selection of anitem or even to voice commands. A minimalistic presentation style may,for example, present large icons, large text, and few options because auser is determined to be a great distance away. Similarly, the specifieddistance may be determined to be below a threshold that causes moreprecise commands to be available to the user and that causes a moredetailed presentation of content. For example, a user may be allowed toscroll, access menus, drag-and-drop files, select individual items onthe monitor, etc. The content provided may also be detailed such asproviding menus, full text of web pages, complete file directories, etc.Thus, the display and/or the command interface may be adapted based onthe user's distance to the display.

In an implementation, a scaling function for a display may be received.A scaling function may refer to a user preference. For example, a userpreference may specify a presentation style for a display at variousdistances, ranges, number of users detected, or content sources such asweb browsing, video, multimedia, audio, etc. For example, a user may bedetected using facial recognition, voice recognition, a patternrecognition, or the like. In the event that no user is detected, thedisplay may adopt a modified function such as turning off, pausing, orproviding a delayed deactivation. The user's preferences may be storedon a local or remote database and provided to a processor associatedwith the display modification. A scaling function may refer to manner bywhich content is displayed on a display. Content for the display may bereceived. A distance between a user and the display may be determined.The output of the display may be modified based on the determineddistance and the scaling function. In some configurations, a gesture setavailable to the user may be assigned based on at least one of thedisplay, the determined distance, and the scaling function. A commandavailability may be determined based on the determined distance. Theavailability of a command may be modified based on the determineddistance as described earlier.

In some instances, the content may be provided by, for example, a settop box and sent to a receiver or A/V processor. A processor responsiblefor providing an indication of the modification of the display may be acomponent of an A/V receiver, the display itself, or another local orremote processor. For example, the A/V processor may transmit videoinformation to a local processor that modifies the data stream accordingto at least one of a presentation style, a scaling function, anattribute, and a determined distance. The processor may transmit themodification to a processor associated with the display.

Distance may affect display output in a number of ways, some of whichhave been described earlier. Information may be scaled based ondistance. For example, from far away, two headlines may be visible on adisplay; but, as the user becomes closer to the display, more headlinesmay appear and/or text from one or more articles may appear beneath eachheadline.

The user interface may be adapted to the distance. For example, if auser is within touching distance of the display, buttons and other touchindicators may suggest to the user how to navigate/interact with thecontent. If, however, the user is further away, the buttons or touchindicators may disappear or change to suggest that they are now voice orgesture command responsive.

Volume may be adapted based on user distance as well. For example, if auser is having a video chat in a kitchen and moves away from the tablewhere laptop used for the chat is located, the speaker volume andmicrophone sensitivity may adjust automatically to compensate for theuser's increased distance. The speaker volume and microphone sensitivitymay readjust when the user returns, proving the user and the person withwhom the user is chatting the impression of constant volume.

As described earlier and shown in FIGS. 4A-C, content density may bemodified based on distance. For example, if the user is playing musicand is far from the screen, then the display may show the title of thesong being played. If the user is standing near the display, it may showthe playlist, the album associated with the song, relevant news aboutthe artist, and suggestions of other music that the user might like.

A function may be modified based on the user distance from a display.For example, a display may be in a user's living room. When the userglances at it from the doorway or another room, the display may show thetime. If, however, the user is proximal to the display, it may functionas a stereo. From a distance of two meters (e.g., if the user is on acouch facing the display), the display may act as a media center, withan emphasis on movies. If the user is in a completely separate room fromthe display, it may function as a voice controlled personal assistant.If no user is present in the household in which the display is located,then it may act as a security system.

In an implementation, a system is provided that includes a database anda processor. The database may store, for example, a user preference, anattribute, a presentation style, information about a display, or thelike. A processor may be connected to the display. The processor may beconfigured to receive a scaling function for a display. It may receivecontent for the display. In some configurations, the processor maydetermine a distance between a user and the display or it may receive anindication thereof. The processor may modify an output of the displaybased on the determined distance and the scaling function.

In an implementation, the presentation style of content shown on adisplay and/or the commands available to a user may be determined basedon other distance measurements. In an implementation, the content and/orcommands can be determined based on the distance between the user and anobject other than the display. For example, the content and commands canbe modified based on the distance of one user from another user, thedistance of a user from a doorway, the distance of a user fromdesignated point or line in a room, the distance of a user from a sensorthat is in a location away from the display, etc. These can be measured,for example, by a camera as described above.

In various implementations, the content and commands on a display can bedetermined based upon a more than one distance. For example, the contentand commands can be determined based on both the distance between afirst user and a second user and the distance between the first user andthe display. In an implementation, the content and commands can bedetermined based on the distance between a user and a sensor locatedaway from the display, the distance between the user and the display andthe distance between the user and another user.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit implementations of the disclosed subject matter to the preciseforms disclosed. Many modifications and variations are possible in viewof the above teachings. The implementations were chosen and described inorder to explain the principles of implementations of the disclosedsubject matter and their practical applications, to thereby enableothers skilled in the art to utilize those implementations as well asvarious implementations with various modifications as may be suited tothe particular use contemplated.

The invention claimed is:
 1. A computer-implemented method comprising:obtaining, by a device that includes a display and a camera, a firstimage and a second image; obtaining, by the device, a first estimate ofa distance between a user and the display based on the first image, anda second estimate of a distance between the user and the display basedon the second image; determining, by the device and based at least onthe first estimate of the distance between the user and the display andthe second estimate of the distance between the user and the display,that the user has crossed a predetermined distance threshold; inresponse to determining that the user has crossed the predetermineddistance threshold, selecting an amount of content to provide fordisplay on the display; and providing the selected amount of content fordisplay on the display.
 2. The method of claim 1, wherein the cameracomprises a depth camera.
 3. The method of claim 1, comprising anattribute including a size of the display, a source of the display, or aprofile of the user, wherein the amount of content is further selectedbased on the attribute.
 4. The method of claim 1, wherein determiningthat the user has crossed a predetermined distance threshold comprisesdetermining that the user is within a maximum distance threshold, andwherein selecting the amount of content comprises selecting a quantityof representations associated with a full set of commands associatedwith a web browser.
 5. The method of claim 1, wherein determining thatthe user has crossed a predetermined distance threshold comprisesdetermining that the user is no longer within a maximum distancethreshold, and wherein selecting the amount of content comprisesselecting a quantity of one or more representations associated with lessthan a full set of commands associated with a web browser.
 6. The methodof claim 1, wherein determining that the user has crossed apredetermined distance threshold comprises determining that the user isno longer within a maximum distance threshold, and wherein selecting theamount of content comprises excluding any representations that areassociated with touch-based commands.
 7. The method of claim 1, whereindetermining that the user has crossed a predetermined distance thresholdcomprises determining that the user is within a maximum distancethreshold, and wherein selecting the amount of content comprisesselecting a quantity of one or more representations of touch-basedcommands.
 8. A non-transitory computer-readable storage device havinginstructions stored thereon that, when executed by a computing device,cause the computing device to perform operations comprising: obtaining,by a device that includes a display and a camera, a first image and asecond image; obtaining, by the device, a first estimate of a distancebetween a user and the display based on the first image, and a secondestimate of a distance between the user and the display based on thesecond image; determining, by the device and based at least on the firstestimate of the distance between the user and the display and the secondestimate of the distance between the user and the display, that the userhas crossed a predetermined distance threshold; in response todetermining that the user has crossed the predetermined distancethreshold, selecting an amount of content to provide for display on thedisplay; and providing the selected amount of content for display on thedisplay.
 9. The storage device of claim 8, wherein the camera comprisesa depth camera.
 10. The storage device of claim 8, comprising anattribute including a size of the display, a source of the display, or aprofile of the user, wherein the amount of content is selected based onthe attribute.
 11. The storage device of claim 8, wherein determiningthat the user has crossed a predetermined distance threshold comprisesdetermining that the user is within a maximum distance threshold, andwherein selecting the amount of content comprises selecting a quantityof representations associated with a full set of commands associatedwith a web browser.
 12. The storage device of claim 8, whereindetermining that the user has crossed a predetermined distance thresholdcomprises determining that the user is no longer within a maximumdistance threshold, and wherein selecting the amount of contentcomprises selecting a quantity of one or more representations associatedwith less than a full set of commands associated with a web browser. 13.The storage device of claim 8, wherein determining that the user hascrossed a predetermined distance threshold comprises determining thatthe user is no longer within a maximum distance threshold, and whereinselecting the amount of content comprises excluding any representationsthat are associated with touch-based commands.
 14. The storage device ofclaim 8, wherein determining that the user has crossed a predetermineddistance threshold comprises determining that the user is within amaximum distance threshold, and wherein selecting the amount of contentcomprises selecting a quantity of one or more representations oftouch-based commands.
 15. A system comprising: one or more dataprocessing apparatus; and a computer-readable storage device havingstored thereon instructions that, when executed by the one or more dataprocessing apparatus, cause the one or more data processing apparatus toperform operations comprising: obtaining, by a device that includes adisplay and a camera, a first image and a second image; obtaining, bythe device, a first estimate of a distance between a user and thedisplay based on the first image, and a second estimate of a distancebetween the user and the display based on the second image; determining,by the device and based at least on the first estimate of the distancebetween the user and the display and the second estimate of the distancebetween the user and the display, that the user has crossed apredetermined distance threshold; in response to determining that theuser has crossed the predetermined distance threshold, selecting anamount of content to provide for display on the display; and providingthe selected amount of content for display on the display.
 16. Thesystem of claim 15, comprising an attribute including a size of thedisplay, a source of the display, or a profile of the user, wherein thecontent is selected based on the attribute.
 17. The system of claim 15,wherein determining that the user has crossed a predetermined distancethreshold comprises determining that the user is within a maximumdistance threshold, and wherein selecting the amount of contentcomprises selecting a quantity of representations associated with a fullset of commands associated with a web browser.
 18. The system of claim15, wherein determining that the user has crossed a predetermineddistance threshold comprises determining that the user is no longerwithin a maximum distance threshold, and wherein selecting the amount ofcontent comprises selecting a quantity of one or more representationsassociated with less than a full set of commands associated with a webbrowser.
 19. The system of claim 15, wherein determining that the userhas crossed a predetermined distance threshold comprises determiningthat the user is no longer within a maximum distance threshold, andwherein selecting the amount of content comprises excluding anyrepresentations that are associated with touch-based commands.
 20. Thesystem of claim 15, wherein determining that the user has crossed apredetermined distance threshold comprises determining that the user iswithin a maximum distance threshold, and wherein selecting the amount ofcontent comprises selecting a quantity of one or more representations oftouch-based commands.